#ifndef QNIGAUI_GUIBASE
#define QNIGAUI_GUIBASE

#include "base.h"
#include <QtGui/QMainWindow>

namespace QnigaUI
{

class GUIBase : public QMainWindow,
                public Base
{
    Q_OBJECT

    public:

        GUIBase ();

        virtual ~GUIBase ();

        virtual void Setup ();

    private:

        void SetupActions ();

        void SetupMenus ();

    protected:

        virtual void SetupFileActions ();
        virtual void SetupViewActions ();
        virtual void SetupNavActions ();
        virtual void SetupBookmarksActions ();
        virtual void SetupToolsActions ();
        virtual void SetupHelpActions ();

        virtual void SetupFileMenu ();
        virtual void SetupViewMenu ();
        virtual void SetupNavMenu ();
        virtual void SetupBookmarksMenu ();
        virtual void SetupToolsMenu ();
        virtual void SetupHelpMenu ();

        virtual void SetupToolbar ();

        virtual void RetranslateUI ();

    protected slots:

        ;//

    private:

        QAction* m_actFileOpen;
        QAction* m_actFileExit;

        QAction* m_actViewFullScreen;
        QAction* m_actViewSetEnc;

        QAction* m_actBookmarkAdd;

        QAction* m_actNavPrevPage;
        QAction* m_actNavNextPage;
        QAction* m_actNavGoToPage;
        QAction* m_actNavBackward;
        QAction* m_actNavForward;
        QAction* m_actNavFirstPage;
        QAction* m_actNavLastPage;

        QAction* m_actToolsPrefs;
        QAction* m_actToolsBookmarks;
        QAction* m_actToolsStatistics;
        QAction* m_actToolsBookInfo;
        QAction* m_actToolsFB2Contents;

        QAction* m_actHelpAbout;
        QAction* m_actHelpAboutQt;
        QAction* m_actHelpReadme;
        QAction* m_actHelpAuthors;
        QAction* m_actHelpChangelog;
        QAction* m_actHelpCopying;
        QAction* m_actHelpFAQ;

        QMenu* m_menuFile;
        QMenu* m_menuView;
        QMenu* m_menuNav;
        QMenu* m_menuFB2Contents;
        QMenu* m_menuBookmarks;
        QMenu* m_menuResetBookmark;
        QMenu* m_menuRenameBookmark;
        QMenu* m_menuRemoveBookmark;
        QMenu* m_menuTools;
        QMenu* m_menuHelp;
};

}

#endif // QNIGAUI_GUIBASE
